home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / PROGTOOL / FGL304F.ZIP;1 / EXFOR.ARJ / FGDOC / EXAMPLES / FORTRAN / 12-04.FOR < prev    next >
Encoding:
Text File  |  1994-01-24  |  1.8 KB  |  70 lines

  1. $INCLUDE: 'C:\FG\INTRFACE.FOR'
  2.  
  3.       PROGRAM MAIN
  4.  
  5.       INTEGER*2 VISUAL, HIDDEN
  6.       PARAMETER (VISUAL=0)
  7.       PARAMETER (HIDDEN=1)
  8.  
  9.       INTEGER*2 XMIN(0:11), YMAX(0:11)
  10.       INTEGER*2 NEW_MODE, OLD_MODE
  11.       INTEGER*2 FRAME, OFFSET
  12.       INTEGER*2 I, X, Y
  13.       INTEGER*2 STATUS
  14.       INTEGER*2 FG_ALLOCATE, FG_FREEPAGE
  15.       INTEGER*2 FG_BESTMODE, FG_GETMODE
  16.  
  17.       DATA XMIN / 0, 96,192,  0, 96,192,  0, 96,192,  0, 96,192/
  18.       DATA YMAX /49, 49, 49, 99, 99, 99,149,149,149,199,199,199/
  19.  
  20. C  initialize the video environment
  21.  
  22.       NEW_MODE = FG_BESTMODE(320,200,2)
  23.       IF (NEW_MODE .LT. 0 .OR. NEW_MODE .EQ. 12) THEN
  24.          STOP 'This program requires a 320 x 200 color graphics mode.'
  25.       END IF
  26.       OLD_MODE = FG_GETMODE()
  27.       CALL FG_SETMODE(NEW_MODE)
  28.       STATUS = FG_ALLOCATE(HIDDEN)
  29.  
  30. C  draw the background in the upper left corner
  31.  
  32.       CALL FG_SETPAGE(HIDDEN)
  33.       CALL FG_SETCOLOR(1)
  34.       CALL FG_RECT(0,95,0,49)
  35.       CALL FG_SETCOLOR(15)
  36.       CALL FG_MOVE(48,25)
  37.       CALL FG_ELLIPSE(20,20)
  38.  
  39. C  display the animated object against each background
  40.  
  41.       CALL FG_SETCOLOR(10)
  42.       OFFSET = -10
  43.       DO 10 I = 1,11
  44.          X = XMIN(I)
  45.          Y = YMAX(I)
  46.          CALL FG_TRANSFER(0,95,0,49,X,Y,HIDDEN,HIDDEN)
  47.          CALL FG_SETCLIP(X,X+95,0,199)
  48.          CALL FG_CLPRECT(X+OFFSET,X+OFFSET+19,Y-29,Y-20)
  49.          OFFSET = OFFSET + 10
  50. 10    CONTINUE
  51.  
  52. C  slide the object across the background three times
  53.  
  54.       DO 20 I = 0,35
  55.          FRAME = MOD(I,12)
  56.          X = XMIN(FRAME)
  57.          Y = YMAX(FRAME)
  58.          CALL FG_TRANSFER(X,X+95,Y-49,Y,112,124,HIDDEN,VISUAL)
  59.          CALL FG_WAITFOR(2)
  60. 20    CONTINUE
  61.  
  62. C  restore the original video mode and return to DOS
  63.  
  64.       STATUS = FG_FREEPAGE(HIDDEN)
  65.       CALL FG_SETMODE(OLD_MODE)
  66.       CALL FG_RESET
  67.  
  68.       STOP ' '
  69.       END
  70.